home *** CD-ROM | disk | FTP | other *** search
- VIEW.EXE
- By Jake Hill
- December 1, 1994
-
- OVERVIEW
-
- VIEW is a BSP based rendering engine compatible with Id Software's WAD file
- and WAD files generated with DEU 5.2. VIEW.EXE will only (ONLY) work with
- DOOM.WAD files from the first doom. It will NOT work with DOOM-2 wads.
- The complete source is included. If you modify these files and then release
- them to the public in ANY form, you MUST include the original source files
- and this read.me file.
-
- BS
-
- First off, I want to thank Matt Fell and Hank Leukart for writing
- _The Unofficial Doom Specs_ without which this program would have
- never been written. I also want to thank Jaimi McEntire and Lloyd Pique
- for tips and help along the way. And last but not least thanks to
- Brendon Wyber and Raphael Quinet for making the source to DEU 5.2
- available. It was much help with reading in the Wad file. Also thanks
- to everyone who I am forgetting now.
-
- If more people made their software available to the public, the world
- would be a better place.
-
- This has been a very fun project for me for the last four months. I have
- learned alot about 3d and pseudo 3d programming.
-
- This is my first attempt at 3d programming. I think it's a pretty good
- first try, but it's certainly not great. Don't be surprised if you find
- a bug or two. It does NOT do any texture mapping, but it should be easy
- for someone experienced in that to add it in. What it does do is read
- in the DOOM.WAD file (for Doom, NOT Doom 2) and render the level with
- solid colored non shaded polygons via a bsp tree traversal. It's not fast,
- but it's not real slow either. About 24 fps on a 486/66 when compiled
- with MSVC 1.5. About 15 fps when compiled with Borland 3.1 or 4.02.
- And yes I used optimizations.
-
- To run the executable put VIEW.EXE in the same directory as
- DOOM.WAD and type VIEW.
-
- The command line is as follows:
- VIEW : Loads DOOM.WAD level 0 (e1m1)
- example: view
- This loads DOOM.WAD level 0 (e1m1).
-
- VIEW [Level#] : Where Level# is an integer in the range (0-25)
- : Loads DOOM.WAD level 0-25 (25=e3m12)
- example: view 3
- This loads DOOM.WAD level 3 (e1m4).
-
- VIEW [filename] [Level#] : Where [filename] is the name of any
- : custom WAD file for doom.
- example: view my.wad 3
- This loads the file MY.WAD level 3.
-
- Use the arrow keys for direction, plus and minus control height,
- use ALT with the left and right arrow for strafe mode, and ESC
- will exit the demo.
-
- The entire thing is written in c++. There is only one class, the view.
- There are some obvious optimizations which can be made with assembler.
- If you want to make it more object oriented, it should be fairly
- obvious which data structures need to be objectized, but I didn't have
- the patience to do that.
-
- The reasons that I am making this available in such an early stage are:
-
- 1. I am sick of looking at this project ;).
-
- 2. I have not seen many (only one) rendering engines which use a bsp
- but I have seen ALOT of questions regarding bsp's. I hope that
- this will help some of the people interested in bsp based rendering.
-
- 3. I would like ANYONE who manages to improve on these algorithms
- (and there will be many) to keep in touch. I would particularly
- like to know how it runs when compiled under Watcom's 32 bit flat
- model. If anyone sees any blatant mistakes on my part, or has any
- suggestions on how to improve this code PLEASE let me know.
-
- I would love to hear any comments or questions you may have.
- I can be reached on CIS at Jake Hill 74032,350 or on internet
- at jkhil@dbsoftware.com
-
- Good Luck. And remember, Life's too short to wear socks!
-